const {mysql} = require('../../qcloud')

//添加/移除收藏（ goods/goods.vue/collect 方法）
async function addCollect(ctx){
	const {openId, goodsId} = ctx.request.body
	//判断是否已经收藏
	const iscollect = await mysql('nideshop_collect').where({
		'user_id':openId,
		'value_id': goodsId
	}).select()
	//如果没有收藏记录则插入记录
	if(iscollect.length ==0){
		await mysql('nideshop_collect').insert({
			'user_id':openId,
			'value_id':goodsId
		})
		ctx.state= {
	  		data:"收藏成功"
	  	}
	}else{
		//否则将收藏的记录删除掉
		await mysql('nideshop_collect').where({
			'user_id':openId,
			'value_id':goodsId
		}).del()
		ctx.state= {
	  		data:"已取消收藏"
	  	}
	} 
}
//收藏中心（ collect/collect.vue/getData 方法）
async function collectList(ctx){
	const { openId } = ctx.query
	let listData = []
	let goodsId = await mysql('nideshop_collect').where({
		'user_id':openId
	}).column('value_id').select()
	if(goodsId.length !== 0){
		// 将连续存放到goodsId中
    	goodsId = goodsId.map((item) => {
      	return item.value_id
    	})
	}
	listData = await mysql('nideshop_goods').whereIn('id', goodsId)
   	.column('id', 'name', 'list_pic_url', 'retail_price')
   	.select()
	ctx.state.data = {
		listData
	}
}
//取消收藏（ collect/collect.vue/delCollect 方法）
async function delCollect(ctx){
	const {openId,goodsId} = ctx.request.body
	const delData = await mysql('nideshop_collect').where({
		'user_id':openId,
		'value_id': goodsId
	}).del()
	ctx.state = {
		data:true
	}
}

module.exports = {
	addCollect,
	collectList,
	delCollect
}